package io;

import java.io.*;
import java.nio.charset.StandardCharsets;

public class PWDemo {
    public static void main(String[] args) throws FileNotFoundException {
        //向文件pw.txt中按照行写入字符串
        /*
         * PrintWriter支持直接对文件进行写操作的构造器
         * PrintWriter(String filename)
         * PrintWriter(File file)
         * */
        /*
         * file = new FIleOutputStream("文件) 文件输出字节流
         * file2 = new outputStreamWrite(file) 交换流
         * file3 = new BufferedWriter(file2) 字符串缓冲流
         * file4 = new PrintWriter(file3) 自动换行输出流
         * */
        //如果想实现追加 还是需要给PrintWriter传入一个打开了追加模式的 文件字节输出流(字节流)对象
        PrintWriter printWriter = new PrintWriter(new FileOutputStream("./pw.txt", true));

        //文件输出字节流(字节流，低级流(节点)):将字节写入到文件当中
        FileOutputStream fileOutputStream = new FileOutputStream("./pw.txt", true);
        //转换流(字符流，高级流(处理流)):将字符转换为字节，链接字节流和其他高级字符流
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8);
        //缓冲字符流(字符流, 高级流(处理流)):快读写文件数据，和缓存字符数据提高程序速度
        BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
        //printWriter(字符流，高级流)：1.实现按照行向文件中写入数据，2.实现自动行刷新
        PrintWriter printWriter1 = new PrintWriter(bufferedWriter);
        /*
         * PrintWriter类中提供了两个方法
         * print();向文件中写入数据
         * println();向文件中写入数据并换行
         * */
        printWriter.print("我的世界,");
        printWriter.println("有你真好");
        printWriter.println("当然这句话我只能对自己说而已");
        System.out.println("写入完成");
        printWriter.close();
    }
}
